package gof_001_创建型_Create.gof_003_抽象工厂_AbstractFactory.gof_001_Normal;

/**
 * 创建一台电脑，需要 CPU，屏幕，硬盘
 */
public class Computer {
    private CPU cpu;            //CPU
    private Screen screen;      //屏幕
    private HardDisk hardDisk;  //硬盘

    /**
     * 当我们使用电脑时，可能关注
     * CPU的类型（i3 i5 i7），CPU的频率（主频 超频 睿频）
     * 屏幕的类型（直面屏,曲面屏,无边框），屏幕的颜色（白色,黑色,红色）
     * 硬盘的类型（机械，固态），硬盘的容量（1T 2T 4T）
     */
    public void use(){
        cpu.type();
        cpu.hertz();

        screen.type();

        hardDisk.capacity();
    }

    //SET GET
    public CPU getCpu() {
        return cpu;
    }

    public void setCpu(CPU cpu) {
        this.cpu = cpu;
    }

    public Screen getScreen() {
        return screen;
    }

    public void setScreen(Screen screen) {
        this.screen = screen;
    }

    public HardDisk getHardDisk() {
        return hardDisk;
    }

    public void setHardDisk(HardDisk hardDisk) {
        this.hardDisk = hardDisk;
    }
}
